﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PMS.ENT
{
    public enum PageInfo
    {
        Message,
        Page,
        PageSize,
        PageNum,
        TotalRecord,
        OrderBy,
        OrderDirection,
        PageInfo,
        Act,
    }

    public enum ActionName
    {
        Insert,
        Update,
        Delete,
        Inactivate,
        Activate,
        Confirm,
        ChangeDefault,
        Join,
        UnJoin,
        Schedule,
        Upload,
        View,
        Review,
        Excel,
        PDF,
        Word,
        Show, 
        Hide,
        Download,
        Print
    }
    public enum OrderDirection
    {
        ASC,DESC
    }

    public enum EventName
    {
        Submit, Approve, Reject, Process, Complete, Close,
    }
    public enum ProjectStatus
    {
        Draft,Confirm,Start,End
    }

    public enum GroupStatus
    {
        Draft, Confirm
    }

    public enum ScheduleStatus
    {
        Draft, Confirm
    }

    public enum Role
    {
        Teacher,Student,Admin
    }

    public enum NotificationType
    {
        Comment,InviteGroup,InviteGroupMore,ConfirmGroup,Upload,Mark,JoinProject,AddSchedule
    }

    public enum Procedure
    {
        #region Project
        procProjectInsert,
        procProjectUpdate,
        procProjectDelete,
        procProjectConfirm,
        procProjectJoin,
        procProjectUnJoin,
        procProjectGetByID,
        procProjectGetList,
        procProjectGetListForCMB,
        procProjectCheckOwnAndDraft,
        procProjectGetListByOwnerAndStatus,
        procProjectGetByScheduleGroupID,
        procProjectCheckIsJoin,
        procProjectGetListBySubjectID,
        procProjectGetBySemesterID,
        #endregion

        #region Department
        procDepartmentInsert,
        procDepartmentUpdate,
        procDepartmentDelete,
        procDepartmentGetByID,
        procDepartmentGetList,
        procDepartmentGetListForCMB,
        #endregion

        #region Subject
        procSubjectInsert,
        procSubjectUpdate,
        procSubjectDelete,
        procSubjectGetByID,
        procSubjectGetList,
        procSubjectGetListForCMB,
        #endregion

        #region User
        procUserInsert,
        procUserUpdate,
        procUserDelete,
        procUserGetByID,
        procUserGetList,
        procUserGetListForCMB,
        procUserGetListByGroupID,
        procUserGetByUserCode,
        procUserGetByEmail,
        procUserGetByUserName,
        procUserGetByIDAndGroupID,
        #endregion

        #region UserGroup
        procUserGroupInsert,
        procUserGroupUpdate,
        procUserGroupDelete,
        procUserGroupDeleteNotInID,
        procUserGroupGetByID,
        procUserGroupGetList,
        procUserGroupGetListForCMB,
        procUserGroupGetListByGroupID,
        procUserGroupConfirm,
        #endregion

        #region Group
        procGroupInsert,
        procGroupUpdate,
        procGroupDelete,
        procGroupGetByID,
        procGroupGetList,
        procGroupGetListForCMB,
        procGroupGetListByScheduleIDForCMB,
        procGroupGetListByStatus,
        procGroupGetListByOwnerAndStatus,
        procGroupConfirm,
        procGroupGetListForCMBForJoin,
        procGroupGetListJoinByScheduleID,
        procGroupGetJoinList,
        procGroupGetAcceptList,
        procProjectGetListGroupFromReference,
        #endregion

        #region Progress
        procProgressGetList,
        #endregion

        #region Schedule
        procScheduleInsert,
        procScheduleUpdate,
        procScheduleDelete,
        procScheduleConfirm,
        procScheduleJoin,
        procScheduleGetByID,
        procScheduleGetList,
        procScheduleGetListForCMB,
        procScheduleGetListByStatus,
        procScheduleGetListByOwnerAndStatus,
        procCheckIsSchedule,
        procScheduleUnJoin,
        #endregion

        #region ScheduleItem
        procScheduleItemInsert,
        procScheduleItemUpdate,
        procScheduleItemDelete,
        procScheduleItemDeleteNotInID,
        procScheduleItemGetByID,
        procScheduleItemGetByScheduleID,
        procScheduleItemGetList,
        procScheduleItemGetListByScheduleID,
        procScheduleItemGetListByScheduleGroupID,
        procScheduleItemGetListForCMB,
        procScheduleItemGetListByStatus,
        #endregion

        #region ScheduleStatement
        procScheduleStatementInsert,
        procScheduleStatementUpdate,
        procScheduleStatementDelete,
        procScheduleStatementGetByID,
        procScheduleStatementGetList,
        procScheduleStatementGetListForCMB,
        procScheduleStatementGetListByScheduleIDForCMB,
        procScheduleStatementGetListByStatus,
        procScheduleStatementGetListByOwnerAndStatus,
        procScheduleStatementGetByGroupAndScheduleItem,
        procScheduleStatementConfirm,
        #endregion

        #region Semester
        procSemesterInsert,
        procSemesterUpdate,
        procSemesterDelete,
        procSemesterGetByID,
        procSemesterGetList,
        procSemesterGetListForCMB,
        procSemesterGetByDate,
        #endregion

        #region File
        procFileInsert,
        procFileUpdate,
        procFileDelete,
        procFileGetByID,
        procFileGetList,
        procFileGetListForCMB,
        procFileGetListByScheduleIDForCMB,
        procFileGetListByStatus,
        procFileGetListByOwnerAndStatus,
        procFileConfirm,
        procFileGetListByStatementID,
        #endregion

        #region Comment
        procCommentInsert,
        procCommentUpdate,
        procCommentDelete,
        procCommentGetByID,
        procCommentGetList,
        procCommentGetListForCMB,
        procCommentGetListByScheduleIDForCMB,
        procCommentGetListByStatus,
        procCommentGetListByOwnerAndStatus,
        procCommentConfirm,
        procCommentGetListByStatementID,
        #endregion

        #region Role
        procRoleGetListForCMB,
        #endregion

        #region Report
        procStudentProjectReport,
        procProjectRpt,
        procProgressRpt,
        procProgressListReport,
        #endregion

        #region Dashboard
        procDashboard,
        #endregion

        #region Reference
        procReferenceInsert,
        procReferenceUpdate,
        procReferenceDelete,
        procReferenceGetByID,
        procReferenceGetList,
        procReferenceGetListForCMB,
        procReferenceGetListByScheduleIDForCMB,
        procReferenceGetListByStatus,
        procReferenceGetListByOwnerAndStatus,
        procReferenceConfirm,
        procReferenceGetListByStatementID,
        procReferenceHide,
        procReferenceShow,
        procReferenceGetListForDownLoad,
        #endregion

        #region Notification
        procNotificationGetByID,
        procNotificationGetList,
        procNotificationInsert,
        procNotificationUpdateIsRead,
        procNotificationDelete,
        procNotificationGetUnreadNumber,
        procNotificationGetListByUserID,
        #endregion

    }

}
